package com.zhl.regex2;

/*
正则表达式用于搜索替换、分割内容,需要结合String提供的如下方法完成。
    方法名                                                                      说明
public String replaceAll(String regex, String replacement)                按照正则表达式匹配的内容,替换匹配的字符串
public String split(String regex)                                         按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组

 */

import java.util.Arrays;

public class Test4 {
    public static void main(String[] args) {
        //需求：将把   古力娜扎xhuihi990迪丽热巴xjiauiu8u378杨幂jicou9x9qn元祖儿  ，中间的非字符串替换成 "-"
        String str = "古力娜扎xhuihi990迪丽热巴xjiauiu8u378杨幂jicou9x9qn元祖儿";
        System.out.println(str.replaceAll("\\w+", "-"));

        //需求2： 某语音系统,收到一个口吃的人说"我喜欢编编编编编编编编编编编编编编编编编编编程程程！"  ，需要优化成"我喜欢编程！"
        String str2 = "我我我我喜欢编编编编编编编编编编编编编编编编编编编程程程！";
        System.out.println(str2.replaceAll("编{2,}程{2,}", "编程"));

        /*
        (.)   匹配一组
        \\1+  为这个组声明一个组号：1号
        +  :  声明必须是重复的字
         $1 : 代表去取到第一组代表的那个重复的字
         */
        String str3 = str2.replaceAll("(.)\\1+", "$1");
        System.out.println(str3);

        //需求2：请把人名获取出来
        String str4 = "古力娜扎xhuihi990迪丽热巴xjiauiu8u378杨幂jicou9x9qn元祖儿";
        String[] arr = str4.split("\\w+");
        System.out.println(Arrays.toString(arr));
    }



}
